{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "afb06061-4785-41dc-a5d1-2adff2a3b525",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "经过标准化处理后的数据： [[ 1.51861254 -0.5622498   0.23205254 ...  0.36217728  1.84791957\n",
      "   1.01300893]\n",
      " [ 0.24628963 -0.49941338 -0.82799632 ...  0.40605066  1.1134493\n",
      "   0.96524152]\n",
      " [ 0.19687903  0.02123125  1.10933436 ...  0.31830389  0.78858745\n",
      "   1.39514818]\n",
      " ...\n",
      " [ 0.33275817  1.74474449 -0.38935541 ... -1.61212515 -1.48544548\n",
      "   0.28057537]\n",
      " [ 0.20923168  0.22769377  0.01273209 ... -1.56825176 -1.40069891\n",
      "   0.29649784]\n",
      " [ 1.39508604  1.58316512  1.36520822 ... -1.52437837 -1.42894777\n",
      "  -0.59516041]]\n",
      "Sklearn自带葡萄酒数据集的标签值： [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
      " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "模型预测准确率 1.0\n",
      "测试集的预测标签 [0 2 1 0 1 1 0 2 1 1 2 2 0 1 2 1 0 0 1 0 1 0 0 1 1 1 1 1 1 2 0 0 1 0 0 0 2\n",
      " 1 1 2 0 0 1 1 1 0 2 1 2 0 2 2 0 2]\n",
      "测试集的真实标签 [0 2 1 0 1 1 0 2 1 1 2 2 0 1 2 1 0 0 1 0 1 0 0 1 1 1 1 1 1 2 0 0 1 0 0 0 2\n",
      " 1 1 2 0 0 1 1 1 0 2 1 2 0 2 2 0 2]\n",
      "新样本的预测标签： [0]\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "from sklearn.datasets import load_wine\n",
    "from sklearn import preprocessing\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.model_selection import cross_val_score#导入交叉验证模块\n",
    "import numpy as np\n",
    "#数据标准化处理\n",
    "data=load_wine().data\n",
    "cdata=preprocessing.StandardScaler().fit_transform(data)\n",
    "#输出数据集的特征变量与标签值，并将数据集拆分为训练集与测试集\n",
    "x,y=cdata,load_wine().target\n",
    "print(\"经过标准化处理后的数据：\",x)\n",
    "print(\"Sklearn自带葡萄酒数据集的标签值：\",y)\n",
    "x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=0)\n",
    "#k取不同值的情况下，模型的预测误差率计算\n",
    "k_range=range(1,15) #设置k值的取值范围\n",
    "k_error=[]#保存预测误差率的数组\n",
    "for k in k_range:\n",
    "    model = KNeighborsClassifier(n_neighbors=k)\n",
    "    scores = cross_val_score(model, x, y, cv=5, scoring='accuracy') # 5折交叉验证\n",
    "    k_error.append(1 - scores.mean())\n",
    "#画图，x轴表示k的取值，y轴表示预测误差率\n",
    "plt.rcParams['font.sans-serif'] = 'SimHei'\n",
    "plt.plot(k_range, k_error, 'r-')\n",
    "plt.xlabel('k的取值')\n",
    "plt.ylabel('预测误差率')\n",
    "plt.show()\n",
    "from sklearn.metrics import accuracy_score\n",
    "model=KNeighborsClassifier(n_neighbors=7)\n",
    "model.fit(x_train,y_train)\n",
    "pred = model.predict(x_test)\n",
    "ac=accuracy_score(y_test,pred)\n",
    "print(\"模型预测准确率\", ac)\n",
    "print(\"测试集的预测标签\", pred)\n",
    "print(\"测试集的真实标签\", y_test)\n",
    "x_new=np.array([[13.2,2.77,2.51,18.5,96.6,1.04,2.55,0.57,1.47,6.2,1.05,3.33,820]])\n",
    "pred=model.predict(x_new)\n",
    "print(\"新样本的预测标签：\",pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "72111ec8-b72e-48f1-b29f-d81baedfea3c",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
